#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
char ox[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
int max(int a,int b){
    return a>b?a:b;
}
void swap(char *a,char *b){
    int temp=*b;
    *b=*a;
    *a=temp;
}
int main(){
    char a[100];
    char b[100];
int a1[100] = {0};
int b1[100] = {0};
int c[100] = {0};

    int num=0;
    a[num]=getchar();
    while(a[num]!='+'){
        num++;
        a[num]=getchar();
    }
    a[num]='\0';
    num=0;
    b[num]=getchar();
    while(b[num]!='='){
         num++;
        b[num]=getchar();
    }
    b[num]='\0';
    int len1=strlen(a);
    int len2=strlen(b);
    for(int i=0;i<(len1/2);i++){
    swap(&a[i],&a[len1-i-1]);
    }
    for(int i=0;i<len1;i++){
        if(a[i]>='0'&&a[i]<='9'){
             a1[i]=a[i]-'0';
           }
           else if(a[i]>='A'&&a[i]<='Z'){
             a1[i]=a[i]-'A'+10;
           }
           else if(a[i]>='a'&&a[i]<='z'){
             a1[i]=a[i]-'a'+10;
           }
    }
   
     for(int i=0;i<(len2/2);i++){
        swap(&b[i],&b[len2-i-1]);
    }
    for(int i=0;i<len2;i++){
          if(b[i]>='0'&&b[i]<='9'){
             b1[i]=b[i]-'0';
           }
           else if(b[i]>='A'&&b[i]<='Z'){
             b1[i]=b[i]-'A'+10;
           }
           else if(b[i]>='a'&&b[i]<='z'){
             b1[i]=b[i]-'a'+10;
           }
    }
    int ws=max(len1,len2);
    ws++;
    for(int i=0;i<ws;i++){
        c[i]=a1[i]+b1[i];
    }
 
    for(int i=0;i<ws;i++){
        if(c[i]>=16){
            c[i+1]+=(c[i]/16);
            c[i]%=16;
        }
    }
    
    printf("0X");
    while(c[ws]==0)ws--;
    for(int i=ws;i>=0;i--){
        printf("%c",ox[c[i]]);
    }
    return 0;
    }
  